package com.gagakuai.concurrent;

import java.util.function.Function;

/* *
 *  阶段接口
 */
public interface CompletionStage<T> {

    /*
     * 同步执行Function任务 ： 接收前一个调用返回的结果，然后对该结果进行处理。
     * 下界 <? super T> 所有T的父类
     * 上界<? extends U> 所有U的子类
     */
    <U> CompletionStage<U> thenApply(Function<? super T, ? extends U> fn);

    /*
     * 异步执行unction任务
     */
    <U> CompletionStage<U> thenApplyAsync(Function<? super T, ? extends U> fn);

}
